This invention relates to systems for managing the configuration of computer terminals, and more particularly to an improved apparatus and method for managing the configuration of a microprocessor-based smart or intelligent computer terminal or emulator.
A "computer" may be broadly defined as a machine for carrying out calculations, a machine for carrying out specified transformations on information, or a stored-program data-processing system. See "IEEE standard Dictionary of Electrical and Electronics Terms", 123 (2d ed. 1977). A "terminal" may likewise be broadly defined as a point in a system or communication network at which data can either enter or leave. See id. at 710. A "computer terminal" may thus be broadly considered as a point through which data may be entered or exited from a computer, i.e., a device for communicating with a computer system.
In recent years, there has been great strides made in the computer terminal industry. Whereas early computer terminals were almost exclusively mechanical teletype devices, modern computer terminals are sophisticated electronic devices that are generally microprocessor controlled, include a substantial amount of storage, provide a monitor (typically a cathode ray tube, or CRT) on which messages and data may be displayed, have a keyboard to facilitate easy manual entry of data and commands, and are adapted to be readily interfaced not only with the computer, but also with other data processing peripheral equipment, such as terminals, printers, expanded storage devices (disc and tape drives), and the like. Hereinafter, the term "terminal" will be used to refer to such modern microprocessor-based computer terminals.
The use of a microprocessor within the terminal greatly expands it capabilities over what was previously achievable in devices of the same physical size and cost. A microprocessor, of course, allows many data processing routines and functions to be stored and executed within the terminal itself rather than having the host system or computer define such routines and functions and completely control the operation of the terminal as was the case with prior art mechanical terminals, Thus, with such routines or functions present within the terminal, the terminal is able to "act on its own" and is not totally dependent upon the host computer for its intelligence. Such routines are typically stored within the terminal in a read only memory device, or ROM. The degree to which such processing routines or capabilities exist in a given terminal has given rise to classifying such terminals as: "dumb" (few processing capabilities present); "smart" (several processing functions present); and "intelligent" (many processing functions present).
Obviously, as more and more smart or intelligent terminals are utilized, the complexity of the host computer may be greatly simplified. Some intelligent terminals, in fact, have sufficient processing routines permanently stored therein that, when coupled to an expanded storage device, such as a tape, cassette, or disk drive system, from which the basic programs required to direct the desired computing functions (the software) may be loaded into the terminal's memory, the terminal may actually function as the host computer.
Each terminal has associated therewith a configuration. The terminal's configuration defines, for example, the type of display (blinking, high-lighted, line length, etc.) that appears on the terminal's CRT, the data rates associated with transmitting data from or receiving data to the terminal, whether such data is transmitted in parallel or serial fashion, the proper power line frequency, password parameters, control character actions, the logical operations that may be performed within the terminal, and the like. It will be appreciated that the particular configuration required to exist within a given terminal will be dictated by the environment and application in and for which the terminal is to be used.
As a practical matter, the terminal configuration is manifest through the terminal hardware. That is, if a certain baud rate is required for serial data transmission, the hardware of the terminal must be configured to provide that baud rate from a serial data port. Likewise, if a certain key on the keyboard is to be a repeat key (that is, if a continual depression of the key is to generate a repeated signal that will be interpreted the same as sequentially depressing the key over and over again), then the hardware associated with the keyboard must recognize a continual depression of the key (that is, a depression longer than a prescribed period of time) and must, in response to such recognition, generate the repeated signal at a desired rate. Hence, the bulk of the terminal configuration parameters must be designed into the terminal hardware. Accordingly, many prior art terminals must be ordered from the manufacturer to a specified configuration that is "built-in" to the terminal; or, as is more often the case, the configuration parameters associated with a given terminal come with the terminal and cannot be changed. That is, such parameters merely form part of the technical specifications of the terminal which must be carefully reviewed and analyzed by a potential buyer.
Because much of the hardware responsible for defining a particular terminal configuration is responsive to signals, or conditions within the terminal, such as binary 1's and 0's, which signals or conditions may generally be readily altered within the terminal if only their source or location is known, some prior art terminals have provided configurations that may be selectively altered or modified. Such altering or modifying has been realized, for example, by providing switches or hardware straps within the terminal that the terminal user may set to a desired position. However, detailed documentation is required in order to point the user to the correct location of the switch or strap. Further, access to such switches or straps generally requires the removal of the case of the terminal, thereby exposing the terminal boards and associated electronics, which exposure may cause damage to the terminal as well as pose a safety hazard to the unskilled user. Finally, the user who manipulates the switches or straps has no way of knowing if the desired configuration has been properly selected short of replacing the terminal cover, turning on power, using the terminal, and observing the configuration of the terminal that is manifest through such use.
It is also known in the art to use a block of memory within the terminal into which the desired 1's and 0's are stored that will define the desired configuration. The contents of this memory may then be displayed in a "bit map" (e.g., a matrix of 1's and 0's ) on the terminal's monitor or CRT. By knowing which bits control which configuration parameters, appropriate manual commands may be executed to alter the appropriate bits, thereby modifying the terminal's configuration to a desired state. However, detailed documentation is again required in order to know which bits of the cryptic bit map control which configuration parameters. Moreover, modifying such bit maps is very tedious and prone to error. Further, problems arise whenever such bit maps are used with respect to initialization of the bit map. That is, when power is first applied to the terminal, the bit map may come up in a random fashion, thereby causing the initial configuration assumed by the terminal to also be random. If this happens, appropriate configuraton data would have to be manually entered into the bit map each time the terminal is powered up. To prevent this, the power-up cycle may include copying into the bit map some known, bit-map data from a ROM or similar storage element. But if the bit map is subsequently altered, such alteration will be lost when power is removed from the terminal. Hence, the desired alteration to the bit map must be made each time power is subsequently applied to the terminal. This continual alteration is a nuisance where the terminal must continually power down and power up. Alternatively, the contents of the ROM could be altered to reflect the desired configuration, but such alteration is expensive, and even after it is performed, the same problem will exist if any subsequent modifications or alterations to the terminal's configuration are desired.
The use of hardware straps or switches, as well as the use of bit maps, to manage the terminal's configuration also prevents the terminal user from knowing the precise terminal configuration that has been selected without performing a detailed manual comparison between the accompanying detailed documentation and the setting of the switches, straps, or bits. Further, if the terminal user desires to alter the terminal configuration, the user does not know, without referring to such detailed documentation, just what terminal configuration options are available.
Many of the limitations associated with managing the configuration of prior art terminals have resulted from limited memory space within the terminal. While available memory space in any terminal can be increased by merely adding additional memory devices thereto, the addition of such additional memory for the sole purpose of facilitating the management of the terminal's configuration has not heretofore been cost justified. This is because the configuration of a given terminal is typically not managed nor altered that frequently. Hence, any terminal configuration management system that relies upon memory devices for storage of data or routines associated therewith must use such memory in an extremely efficient manner.